Retrieves the position and size of a control.
ControlGetPos [, X, Y, Width, Height, Control, WinTitle, WinText, ExcludeTitle, ExcludeText]
X, Y | The names of the variables in which to store the X and Y coordinates (in pixels) of Control's upper left corner. These coordinates are relative to the target window's upper-left corner and thus are the same as those used by ControlMove. If either X or Y is omitted, the corresponding values will not be stored. |
Width/Height | The names of the variables in which to store Control's width and height (in pixels). If omitted, the corresponding values will not be stored. |
Control | Can be either ClassNN (the classname and instance number of the control) or the name/text of the control, both of which can be determined via Window Spy. When using name/text, the matching behavior is determined by SetTitleMatchMode. If this parameter is blank, the target window's topmost control will be used. To operate upon a control's HWND (window handle), leave the Control parameter blank and specify ahk_id %ControlHwnd% for the WinTitle parameter (this also works on hidden controls even when DetectHiddenWindows is Off) . The HWND of a control is typically retrieved via ControlGet Hwnd, MouseGetPos, or DllCall. |
WinTitle | The title or partial title of the target window (the matching behavior is determined by SetTitleMatchMode). If this and the next 3 parameters are omitted, the Last Found Window will be used. If this is the letter A and the next 3 parameters are omitted, the active window will be used. To use a window class, specify ahk_class ExactClassName (shown by Window Spy). To use a process identifier (PID), specify ahk_pid %VarContainingPID%. To use a window group, specify ahk_group GroupName. To use a window's unique ID number, specify ahk_id %VarContainingID%. The search can be narrowed by specifying multiple criteria. For example: My File.txt ahk_class Notepad |
WinText | If present, this parameter must be a substring from a single text element of the target window (as revealed by the included Window Spy utility). Hidden text elements are detected if DetectHiddenText is ON. |
ExcludeTitle | Windows whose titles include this value will not be considered. |
ExcludeText | Windows whose text include this value will not be considered. |
If no matching window or control is found, the output variables will be made blank.
Unlike commands that change a control, ControlGetPos does not have an automatic delay (SetControlDelay does not affect it).
To discover the name of the control that the mouse is currently hovering over, use MouseGetPos. To retrieve a list of all controls in a window, use WinGet.
Window titles and text are case sensitive. Hidden windows are not detected unless DetectHiddenWindows has been turned on.
ControlMove, WinGetPos, Control, ControlGet, ControlGetText, ControlSetText, ControlClick, ControlFocus, ControlSend
; This working example will continuously update and display the ; name and position of the control currently under the mouse cursor: Loop { Sleep, 100 MouseGetPos, , , WhichWindow, WhichControl ControlGetPos, x, y, w, h, %WhichControl%, ahk_id %WhichWindow% ToolTip, %WhichControl%`nX%X%`tY%Y%`nW%W%`t%H% }